package main

import (
	"bufio"
	"fmt"
	"log"
	"net"
	"os"
	"time"
)

func main() {
	//输出
	fmt.Println("客服端启动。。")
	//调用Dial函数：参数需要指定tcp协议，需要指定服务器端的IP+PORT
	conn, err := net.DialTimeout("tcp", "127.0.0.1:8888", time.Second)
	if err != nil { //连接失败
		fmt.Println("客户端连接失败：err:", err)
		return
	}
	fmt.Println("连接成功，conn:", &conn)

	//通过客户端发送单行数据，然后退出：
	//os.Stdin代表终端标准输入
	var reader bufio.Reader
	reader = *bufio.NewReader(os.Stdin)

	//从终端读取一行用户输入的信息：
	str, err := reader.ReadString('\n')
	if err != nil {
		fmt.Println("终端输入失败，err:", err)
	}

	//将str数据发送给服务器
	n, err := conn.Write([]byte(str))
	if err != nil {
		fmt.Println("连接失败，err:", err)
	}
	fmt.Printf("终端数据通过客户端发送成功，一共发送了%d字节的数据,并退出", n)

	// 读取服务端数据
	buf := make([]byte, 1024)
	rn, err := conn.Read(buf)
	if err != nil {
		log.Println(err)
	}
	log.Println("received from server data is ", string(buf[:rn]))

}
